Controller Area Network (CAN) technology, as its name implies, is a network established among microcontrollers. Like computer networks, it has the similar transmission protocol defined by ISO/OSI (International Standard Protocol/Open System Interconnection) 7-layer model. However, unlike computer networks, it uses a simplified 7-layer model in which only 2 of the lowest stacks were defined, i.e. Data-Link Layer and Physical Layer. This simplification allows the protocol to be more "open" than computer networks, i.e. it allows the users freedom to develop their own applications. CAN offers Error Detection/Confinement ability in which the feature is burnt into the silicon during manufacturing. This significantly reduces the burden of the microcontroller in verifying the CAN signal on the bus. The failure node determines itself and retransmit the signal upon detecting the failure in transmission.
CAN was first established for automobiles in mid 1986. The first CAN chip was available in 1987 by Intel. After which, many companies adopted the CAN technology to develop higher level protocols.
CAN consists of a single bit-serial channel for all information. Transmission and reception of data, bit timing and bus arbitration all take place on what is logically a single line. The CAN Physical Layer defines the electrical levels and signaling scheme on the bus, the cable impedance and similar things. The physical layer characteristics are not part of the basic CAN specification. The bus is a single wire plus ground with every node connected to the bus such that every node receives every message. The most common implementation of the physical layer, as defined by ISO 11898, is a two-wire balanced signaling scheme. Several CAN transceiver chips are manufactured by Philips, such as the 82C250 transceiver which implements the physical layer defined by ISO 11898. The ISO 11898 prescribes that the cable impedance be nominally 120 Ohms, but an impedance in the interval of [108 . . . 132] Ohms is permitted.
The CAN bus uses Non-Return To Zero (NRZ) with bit-stuffing. There are two different signaling states: dominant (logically 0) and non-dominant (logically 1). These correspond to certain electrical levels which depend on the physical layer used. The modules are connected to the bus in a wired-AND fashion: if one node is driving the bus to the dominant state, then the whole bus is in that state regardless of the number of nodes transmitting a non-dominate state. This requirement that if one node is driving the bus to the dominant state, then the whole bus is in that state regardless of the number of nodes transmitting a non-dominate state is fundamental to bus arbitration. In particular, bus arbitration for control of the bus takes place while the arbitration field, which is the first field transmitted, is transmitted. If a node, which is sending a non-dominate state, sees that the bus is in the dominate state, it recognizes that another node is transmitting a higher priority message and stops transmitting.
In some systems it is desirable to connect two CAN buses over a great distance. Because of signal degradation, the distance total distance of the bus has an upper limit. Other systems may wish to wireless connect nodes using, for example infrared (IR) or radio frequencies (RF). To reach great distances or use a wireless media it is often necessary to use a galvanically isolate the nodes. However, galvanically isolated nodes on a wired-AND bus are prone to a lock-up condition. When a galvanic isolator receives a dominate state on a first bus, it must drive the second bus to the dominate state, However, the galvanic isolator now receives a dominate state on the second bus, which causes the galvanic isolator to drive the first bus to the dominate state. The galvanic isolator is driving both buses to the dominate state and no other node may change the bus back to the non-dominate state, thus the bus is "locked-up".
Nodes on a local bus can be logically connected through controller connected to nodes on one or more remote bus using a higher level in the protocol. This requires that information from one bus pass through a node on that bus and into the controller, which is then sent to a second controller on the other bus. The second controller then places the information on its bus. Such an arrangement is not optimal, for example, each layer in the protocol adds a delay and added complexity to the network. Additionally, there must be some form of arbitration between the two controllers in order to insure that messages are passed from one bus to the others.